Rework the dashboard for the consumer ICP — the actor who calls inference apps#4
Merged
Conversation
Evolve the developer dashboard's information architecture to serve both the consumer (calls inference apps) and operator (deploys apps) without splitting the UI by persona — the organizing axis is the workspace's relationship to the network, framed by call direction. Vocabulary (grounded in the Runner SDK + gateway): - model/capability → "app" (a deployed pipeline; capability stays a network/protocol concept only) - Workspace → Organization (with public /orgs/[slug] profiles) - runs/jobs → "calls" (the SDK uses request/session; "calls" is the consumer-facing umbrella over batch + live) Routes & nav: - models/[id] → apps/[id] (ownership-gated tabs folded in) - /jobs → /calls (standalone Calls log; removed stale "jobs" naming) - Environment (Production/Development) as a per-page facet + switcher - sidebar rebuilt into home / network / environment / organization zones Home — "mission control" console: - command bar (org readout + greeting + adaptive attention line that names the most urgent thing, e.g. an erroring app) - two even-height panels: Deployed apps (what you serve) and Usage (what you consume, incl. spend on apps you didn't deploy) - Recent activity = the workspace's own calls (preview of /calls) Calls view: - Batch / Live segmented filter; metric column adapts (latency for batch, session duration for live, "Elapsed" when mixed) - live, in-progress sessions render a pulsing dot + ticking elapsed and sort to the top (new "active" AccountActivityStatus) All surfaces remain mock-data-only; typecheck, lint (0 warnings), and production build pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
- Home "Recent activity" subheader: "requests this workspace made" → "calls your organization made" (drops two retired terms at once). - Replace every remaining "workspace" with "organization" across copy, comments, and mock owner labels (the Modal note reworded to "account/ org tier"); zero "workspace" references remain. - Deployed apps panel: the hero number is now the app count (it read as "51.4K apps" under the count-noun title). Calls served moves to the right-aligned secondary, mirroring the Usage panel so both stay even-height. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Drop the "Period 7d" selector and "View usage" link from the Home header. The page mixes timeframes (calls · 7d, spend · MTD, relative activity), so a page-wide period control is misleading, and "View usage" duplicates the sidebar item + the Usage panel's own link. - Recent activity subheader: "calls your organization made" → "calls you've made" (it's already your org's dashboard, so naming the org is redundant). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The dashboard's operator deploys/publishes apps; orchestrators (via gateways) actually run the pipeline and serve the inference. Reword the Home composition note and the org-fleet / org-consumption / AppsHealthPanel comments from "what you serve" / "SERVE ledger" / "calls served" to the accurate deploy-vs-consume framing (call volume = calls the network handled for your apps). Comments only — no rendered-UI change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…gated tab Overview is a read-only summary (KPIs + deployment metadata), so it shouldn't be owner-gated. Move it out of the owner-only set into the shared consumer tabs — it leads whenever the app is deployment-backed (has a pipeline), so anyone viewing the app sees it; catalog-only entries with no deployment don't get an empty Overview. Settings is now the sole ownership-gated tab. Also fixes the stale tab comments (incl. the incorrect "Logs & Settings (trail)" note — Logs was always a consumer tab). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Recent activity panel previews the org's individual calls, whose full log is /calls — not the aggregate /usage dashboard. Repoint "View all" (and the doc comment) accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Root `/` now redirects signed-in users to /home (the dashboard default);
signed-out visitors keep the Explore catalog there as the public landing.
So Explore stays reachable for signed-in users without bouncing, the
catalog is extracted into an <ExploreView> component and given its own
/explore route (the sidebar "Explore" item points there).
- app/(app)/page.tsx → thin client redirect (authed → /home, else ExploreView)
- app/(app)/explore/page.tsx → renders ExploreView (no redirect)
- components/dashboard/ExploreView.tsx → the catalog (moved from the old root page)
- nav + active-state: Explore href "/" → "/explore"; getNavActive "/" special
case removed; signed-out variant treats "/" and "/explore" as Explore
- repoint Explore-intent links ("/" → "/explore") in DashboardSearch,
SignInWall, ActivityPanel empty state, apps/[id] + orgs/[slug] fallbacks
- robots: allow /explore
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Authoring uses the Runner SDK; deploying uses the `livepeer` CLI (`livepeer init` / `livepeer push`). The onboarding "Deploy an example app" step and the Apps page intro both describe pushing/deploying, so they should name the CLI, not the SDK. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Clicking a call row now opens a right-side slide-over inspector instead
of dead-ending on /usage (which never handled ?request=). It's URL-
addressable at /calls?request={id} — deep-linkable, back-button closes.
- Drawer primitive gains a `right` side (480px slide-over).
- New CallDetailDrawer: status · Batch/Live · env · timing metrics
(latency for batch, duration for live) · cost · caller, plus the
request/response payloads (batch) or a session summary (live). Payloads
are mock, shaped by the pipeline.
- CallsView reads ?request= (Suspense-wrapped), holds the row through the
close transition so the drawer animates out with content intact.
- Call rows (CallsTable + Home ActivityPanel) link to /calls?request={id}.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Instruction copy should use the product noun ("app"), consistent with
"Deployed apps" / "Deploy an example app". "Pipeline" is the SDK-layer
artifact term, best reserved for describing what you author.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…r base Make the dashboard base consumer-only — the actor who *calls* inference apps — and move every operator/publishing surface (the actor who *deploys* apps) into a stacked PR layered on top of this one. Removed from the consumer base: - Home: Deployed-apps health panel + the command-bar deployments readout and erroring/building "attention line". Home is now Usage (what you spend calling apps) beside Recent activity (your own calls). - Onboarding: the deploy-flavored "Get started" becomes the consumer loop — create your account → get your API key → call an app. - Nav: the Apps list route (/apps) and its sidebar entry. - Settings: the Deploy tokens tab + its settings-rail item. - API keys: the "to deploy your own apps, use Deploy tokens" pointer. - App detail: owner/operator chrome (Settings/manage tab, publish controls) gated off via OWNER_MODE_ENABLED — the app page is view-only for everyone in the consumer base. The /apps/[id] detail route stays (consumers view app pages). The stacked apps PR reverts this commit to re-add the full operator layer. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
adamsoffer
added a commit
that referenced
this pull request
Jun 17, 2026
…base Layers the operator/publishing surfaces — the actor who *deploys* apps — on top of the consumer base merged in #4. Adds back, on top of main: - Home: the Deployed-apps health panel, plus the command-bar deployments readout and the erroring/building "attention line" that names the single most urgent app the instant you land. - Onboarding: the deploy-flavored "Get started" (push a hello-world pipeline) alongside the consumer loop. - Nav: the Apps list route (/apps) and its sidebar entry. - Settings: the Deploy tokens tab + its settings-rail item. - API keys: the "to deploy your own apps, use Deploy tokens" pointer. - App detail: owner/operator chrome (Settings/manage tab, publish controls) re-enabled via OWNER_MODE_ENABLED. Rebased onto main after #4 was squash-merged: the original stacked branch carried #4's pre-squash commits, which collided with the squashed main. This is the same operator diff re-derived cleanly on top of main. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Reworks the developer dashboard's information architecture for the consumer ICP — the actor who calls inference apps on the network. The organizing axis is the organization's relationship to the network, framed by direction — apps you consume from the network (which orchestrators serve). Everything stays mock-data-only.
Vocabulary (grounded in the Runner SDK + gateway)
make_app(pipeline))./orgs/[slug]profiles (GitHub-style).runner-sdk.md+ the gateway client.)Routes & navigation
models/[id]→apps/[id]— view-only app detail (Overview, Logs, etc.). Owner/operator chrome lives in Add the operator/publishing layer — deployed apps, /apps, deploy tokens #5./jobs→/calls— promoted to a real nav item; removed the stale "Jobs" naming/copy and rebound theg cshortcut./redirects logged-in users to/home; signed-out visitors keep the Explore catalog at/(the public landing). Explore gets its own/exploreroute so signed-in users can still browse it.home / network / environment / organizationzones.Home — the consumer console
/calls.Calls view
activestatus onAccountActivityRow)./calls?request=<id>) — batch shows request/response JSON, live shows a session summary.Reviewer notes
lib/dashboard/); single-source helperorg-consumption.tskeeps headline numbers consistent across surfaces.activecall deep-links to the request inspector; a dedicated live inspector is a follow-up.✅
pnpm typecheck,pnpm lint(0 warnings), andpnpm buildall pass.🤖 Generated with Claude Code